home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Source Code
/
Visual Basic Source Code.iso
/
vbsource
/
optivc32
/
vulmath.h
< prev
next >
Wrap
C/C++ Source or Header
|
1999-03-06
|
5KB
|
106 lines
/* VULmath.h
vector management functions for data type "unsigned long":
integer arithmetics and mathematics.
Copyright (c) 1996-1999 by Martin Sander
All Rights Reserved.
*/
#ifndef __VULMATH_H
#define __VULMATH_H
#if !defined( __VECLIB_H )
#include <VecLib.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/****************** Basic Arithmetics *************************/
void __vf VULo_addC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VULo_subC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VULo_subrC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VULo_mulC( ulVector Y, ulVector X, ui size, unsigned long C );
#ifdef V_trapIntError
#define VUL_addC VULo_addC
#define VUL_subC VULo_subC
#define VUL_subrC VULo_subrC
#define VUL_mulC VULo_mulC
#else
void __vf VUL_addC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_subC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_subrC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_mulC( ulVector Y, ulVector X, ui size, unsigned long C );
#endif
void __vf VUL_divC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_divrC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_modC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_maxC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_minC( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VULo_addV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VULo_subV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VULo_subrV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VULo_mulV( ulVector Z, ulVector X, ulVector Y, ui size );
#ifdef V_trapIntError
#define VUL_addV VULo_addV
#define VUL_subV VULo_subV
#define VUL_subrV VULo_subrV
#define VUL_mulV VULo_mulV
#else
void __vf VUL_addV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VUL_subV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VUL_subrV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VUL_mulV( ulVector Z, ulVector X, ulVector Y, ui size );
#endif
void __vf VUL_divV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VUL_divrV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VUL_modV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VUL_maxV( ulVector Z, ulVector X, ulVector Y, ui size );
void __vf VUL_minV( ulVector Z, ulVector X, ulVector Y, ui size );
/******************** Accumulation (Y += X) ******************************/
void __vf VUL_accV( ulVector Y, ulVector X, ui size );
void __vf VUL_accVBI( ulVector Y, ubVector X, ui size );
void __vf VUL_accVSI( ulVector Y, usVector X, ui size );
void __vf VUL_accVI( ulVector Y, uVector X, ui size );
/***************** Bit-wise operations *********************/
void __vf VUL_shl( ulVector Y, ulVector X, ui size, unsigned C );
void __vf VUL_shr( ulVector Y, ulVector X, ui size, unsigned C );
void __vf VUL_and( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_or( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_xor( ulVector Y, ulVector X, ui size, unsigned long C );
void __vf VUL_not( ulVector Y, ulVector X, ui size );
/************ Optical Density Y = log10( X0 / X ) *********************/
int __vf VUL_ODtoF( fVector OD, uVector X, uVector X0, ui size );
int __vf VUL_ODtoD( dVector OD, uVector X, uVector X0, ui size );
int __vf VUL_ODtoFwDark( fVector OD, uVector X, uVector XDark,
uVector X0, uVector X0Dark, ui size );
int __vf VUL_ODtoDwDark( dVector OD, uVector X, uVector XDark,
uVector X0, uVector X0Dark, ui size );
void __vf VUL_setODThresh( unsigned long minX, unsigned long minX0 );
#ifdef __BORLANDC__ /* 80-bit reals supported ? */
int __vf VUL_ODtoE( eVector OD, uVector X, uVector X0, ui size );
int __vf VUL_ODtoEwDark( eVector OD, uVector X, uVector XDark,
uVector X0, uVector X0Dark, ui size );
#else
#define VUL_ODtoE VUL_ODtoD
#define VUL_ODtoEwDark VUL_ODtoDwDark
#endif
#ifdef __cplusplus
}
#endif
#endif /* __VULMATH_H */